6 class TestChunker < Test::Unit::TestCase
8 chunker = Chunker.new("Code in Ruby, live longer!")
9 assert_equal(["CODEI","NRUBY","LIVEL","ONGER"], chunker.chunks)
13 chunker = Chunker.new("sty")
14 assert_equal(["STYXX"], chunker.chunks)
17 def test_number_chunks
18 chunker = Chunker.new("Code in Ruby, live longer!")
19 assert_equal([[3,15,4,5,9], [14,18,21,2,25], [12,9,22,5,12], [15,14,7,5,18]], chunker.number_chunks)
23 assert_equal(["CODEI","NRUBY","LIVEL","ONGER"],
24 Chunker.to_letters([[3,15,4,5,9], [14,18,21,2,25], [12,9,22,5,12], [15,14,7,5,18]]))
28 class TestKeystream < Test::Unit::TestCase
30 @keystream = Keystream.new
33 def test_keystream_letters
34 chunker = Chunker.new("Code in Ruby, live longer!")
35 assert_equal(["DWJXH","YRFDG","TMSHP","UURXJ"], @keystream.keystream_letters(chunker.chunks))
38 def test_card_to_letter
39 assert_equal("", Keystream.card_to_letter(Card.joker(?A)), "A joker")
40 assert_equal("", Keystream.card_to_letter(Card.joker(?B)), "B joker")
41 assert_equal("A", Keystream.card_to_letter(Card.new(Suit::CLUBS, Card::ACE)), "AC")
42 assert_equal("Z", Keystream.card_to_letter(Card.new(Suit::DIAMONDS, Card::KING)), "KD")
43 assert_equal("A", Keystream.card_to_letter(Card.new(Suit::HEARTS, Card::ACE)), "AH")
44 assert_equal("Z", Keystream.card_to_letter(Card.new(Suit::SPADES, Card::KING)), "KS")
48 class TestCipher < Test::Unit::TestCase
50 cipher = Cipher.new("Code in Ruby, live longer!")
51 assert_equal("encrypt", cipher.mode)
52 assert_equal("GLNCQ MJAFF FVOMB JIYCB", cipher.crypt)
56 cipher = Cipher.new("GLNCQ MJAFF FVOMB JIYCB")
57 assert_equal("decrypt", cipher.mode)
58 assert_equal("CODEI NRUBY LIVEL ONGER", cipher.crypt)
61 def test_crypt_idempotent
62 cipher = Cipher.new("GLNCQ MJAFF FVOMB JIYCB")
63 assert_equal("decrypt", cipher.mode)
64 assert_equal("CODEI NRUBY LIVEL ONGER", cipher.crypt)
65 assert_equal("CODEI NRUBY LIVEL ONGER", cipher.crypt)